library(tidyverse)
library(patchwork)
library(plotly)
library(ggthemes)
using patchwork, we can make this pattern of graph in many ways. The best way to make the pattern to begin with is to order from top to bottom so plot2 is on top then the next three plots (plot4, plot1, plot3) are in the middle and then at the very bottom is plot5.
p1 <- ggplot(mtcars) +
geom_point(aes(mpg, disp)) +
ggtitle('Plot 1')
p1
p2 <- ggplot(mtcars) +
geom_boxplot(aes(gear, disp, group = gear)) +
ggtitle('Plot 2')
p2
p3 <- ggplot(mtcars) +
geom_point(aes(hp, wt, colour = mpg)) +
ggtitle('Plot 3')
p3
p4 <- ggplot(mtcars) +
geom_bar(aes(gear)) +
ggtitle('Plot 4')
p4
p5 <- ggplot(mtcars) +
geom_histogram(aes(disp)) +
ggtitle('Plot 5')
p5
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
p2 / (p4 + p1 + p3) / p5
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
The Diamonds dataset looks at 53,940 observations over 10 different variables. These variables range from carat, cut, color, clarity, depth, talbe, price, x, y, z.
summary(diamonds)
## carat cut color clarity depth
## Min. :0.2000 Fair : 1610 D: 6775 SI1 :13065 Min. :43.00
## 1st Qu.:0.4000 Good : 4906 E: 9797 VS2 :12258 1st Qu.:61.00
## Median :0.7000 Very Good:12082 F: 9542 SI2 : 9194 Median :61.80
## Mean :0.7979 Premium :13791 G:11292 VS1 : 8171 Mean :61.75
## 3rd Qu.:1.0400 Ideal :21551 H: 8304 VVS2 : 5066 3rd Qu.:62.50
## Max. :5.0100 I: 5422 VVS1 : 3655 Max. :79.00
## J: 2808 (Other): 2531
## table price x y
## Min. :43.00 Min. : 326 Min. : 0.000 Min. : 0.000
## 1st Qu.:56.00 1st Qu.: 950 1st Qu.: 4.710 1st Qu.: 4.720
## Median :57.00 Median : 2401 Median : 5.700 Median : 5.710
## Mean :57.46 Mean : 3933 Mean : 5.731 Mean : 5.735
## 3rd Qu.:59.00 3rd Qu.: 5324 3rd Qu.: 6.540 3rd Qu.: 6.540
## Max. :95.00 Max. :18823 Max. :10.740 Max. :58.900
##
## z
## Min. : 0.000
## 1st Qu.: 2.910
## Median : 3.530
## Mean : 3.539
## 3rd Qu.: 4.040
## Max. :31.800
##
str(diamonds)
## tibble [53,940 Ă— 10] (S3: tbl_df/tbl/data.frame)
## $ carat : num [1:53940] 0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
## $ cut : Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
## $ color : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 2 2 2 6 7 7 6 5 2 5 ...
## $ clarity: Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 2 3 5 4 2 6 7 3 4 5 ...
## $ depth : num [1:53940] 61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
## $ table : num [1:53940] 55 61 65 58 58 57 57 55 61 61 ...
## $ price : int [1:53940] 326 326 327 334 335 336 336 337 337 338 ...
## $ x : num [1:53940] 3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
## $ y : num [1:53940] 3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
## $ z : num [1:53940] 2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
p1 <- ggplot(diamonds) +
geom_boxplot(aes(color, price), color = "lightblue") +
coord_flip() +
ggtitle("Plot 1")
# p1
p2 <- ggplot(diamonds) +
geom_boxplot(aes(carat, color), color = "lightpink1") +
ggtitle("Plot 2")
p1 + p2
mtcars_columncount <- ncol(mtcars)
mtcars_rowcount <- nrow((mtcars))
print(paste("There are", mtcars_columncount, "variables and", mtcars_rowcount, "unique car types in the mtcars dataset."))
## [1] "There are 11 variables and 32 unique car types in the mtcars dataset."
name1 = colnames(mtcars) [1:11]
name1
## [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
## [11] "carb"
head(iris)
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
iris_IP <- iris %>%
ggplot( aes(Sepal.Length, Petal.Length, size=Sepal.Width, color=Petal.Width)) +
geom_point() +
scale_x_log10() +
theme_bw()
ggplotly(iris_IP)
This graph observes the 4 different quantitative variables in the Iris dataset. We have sepal length on the x-axis and petal length on the y-axis with a comparitive use of sepal width and color by petal width.
Lob1 <- ggplot(Loblolly) +
geom_point(aes(age, height)) +
ggtitle("Plot 1")
# p1
Lob2 <- ggplot(Loblolly) +
geom_boxplot(aes(age, height, group = Seed)) +
ggtitle("Plot 2")
# p2
Lob3 <- ggplot(Loblolly) +
geom_point(aes(age, height, colour = Seed)) +
ggtitle("Plot 3")
Lob1 + theme_dark()
Lob2 + theme_light()
Lob3 + theme_bw()